$(function () {
    // load all menus
    getMenus();

    //close add dialog
    $('#closeId').click(function () {
        closeDialog();
    });

    //close update dialog
    $('#closeId2').click(function () {
        closeDialog2();
    });

    // addMenu
    $("#saveId").click(function () {
        addMenu();
    });

    // update
    $("#saveId2").click(function () {
        updateMenu();
    });

});

/**
 * open root dialog
 */
function openDialog(val) {
    var title;
    if (val === 0) {
        title = '添加根菜单';
    } else {
        title = '添加子菜单';
        var node = $('#menuTreeId').tree('getChecked');
        if (node.length == 0) {
            $.messager.alert('提示', '请勾选一个节点', "info");
            return;
        }
        if (node.length > 1) {
            $.messager.alert('提示', '请勾选一个节点', "info");
            return;
        }
        // /console.log(node[0].id);
        // 只有一个节点
        $('#pkId').val(node[0].id);

    }
    $("#dialogId").dialog({
        closed: false,
        closable: false,
        /*left: 0,
        top: 0,*/
        title: title,
        iconCls: 'icon-save',
        onOpen: function () {
        }
    });
}

/**
 * open dialog
 */
function updateDialog() {
    var node = $('#menuTreeId').tree('getChecked');
    if (node.length == 0) {
        $.messager.alert('提示', '请勾选一个节点', "info");
        return;
    }
    if (node.length > 1) {
        $.messager.alert('提示', '请勾选一个节点', "info");
        return;
    }
    // /console.log(node[0].id);
    // 只有一个节点
    var id = node[0].id;
    $.ajaxAsync($WEB_ROOT_PATH + '/menu/detail', 'GET', {id: id}, function (res) {
        if (res.code === 0) {
            $("#dialogId2").dialog({
                closed: false,
                closable: false,
                /*left:0,
                top:0,*/
                title: '修改菜单信息',
                iconCls: 'icon-edit',
                onOpen: function () {
                    $("#fromId2").form("load", res.data); //载入表单
                }
            });
        } else {
            resError(res);
        }
    }, function (res) {
    }, 'json');
}

/**
 * close root dialog
 */
function closeDialog() {
    $("#dialogId").dialog("close");
    reload(); //刷新
}

/**
 * update menu dialog
 */
function closeDialog2(){
    $("#dialogId2").dialog("close");
    reload(); //刷新
}

/**
 * get all menus
 */
function getMenus() {
    var menus = [];
    $.ajaxSync($WEB_ROOT_PATH + '/menu/getAllMenu', 'post', null, function (res) {
        if (res.code === 0) {
            menus = res.data;
            //console.log(res);
        } else {
            $.messager.alert("提示", "菜单异常", "", function () {
                //window.location.href = $WEB_ROOT_PATH + "/";
            });
        }
    }, function (res) {
        //console.log(res.responseJSON);
        //$TokenReUtil.reLogin();
    }, 'json');

    $("#menuTreeId").tree({ //tree菜单全部加载
        data: menus,
        lines: true,
        animate: true,
        checkbox: true,
        cascadeCheck: false, //不级联选择
        onLoadSuccess: function (node, data) {
            if (data) {
                $(data).each(function (index, d) {
                    /* 开发阶段取消$("#menuTreeId").tree("collapseAll", d.target); //折叠关闭所有
                    // 查找一个节点然后返回它
                    if (index == 0) { //默认展开第一个
                        var node = $('#menuTreeId').tree('find', d.id);
                        $("#menuTreeId").tree("expand", node.target);
                    } */
                });
            }
        },
        onClick: function (node) { //

        }
    });
}

/**
 * 刷新
 */
function reload() {
    getMenus();
}

/**
 * add menu
 */
function addMenu() {
    if ($("#fromId").form('validate')) {
        //console.log($("#fromId").serializeJsonStr());
        $.ajaxAsyncJson($WEB_ROOT_PATH + '/menu/save', 'post', $("#fromId").serializeJsonStr(), function (res) {
            if (res.code === 0) {
                /*$.messager.alert('提示',res.data,"",function(){
                    $("#dialogId").dialog("close");
                    cfrl('fromId');
                });
                // alert 去掉关闭按钮
                $('.panel-tool-close').hide();*/
                $.messager.show({
                    title: '提示',
                    msg: res.data,
                    timeout: 3000,
                    showType: 'slide'
                });
                $("#dialogId").dialog("close");
                reload();
            } else {
                resError(res);
            }
        }, function (res) {
        }, 'json');
    }
}

/**
 * update menu
 */
function updateMenu() {
    if ($("#fromId2").form('validate')) {
        $.ajaxAsyncJson($WEB_ROOT_PATH + '/menu/update', 'post', $("#fromId2").serializeJsonStr(), function (res) {
            if (res.code === 0) {
                /*$.messager.alert('提示',res.data,"",function(){
                    $("#dialogId").dialog("close");
                    cfrl('fromId');
                });
                // alert 去掉关闭按钮
                $('.panel-tool-close').hide();*/
                $.messager.show({
                    title: '提示',
                    msg: res.data,
                    timeout: 3000,
                    showType: 'slide'
                });
                $("#dialogId2").dialog("close");
                reload();
            } else {
                resError(res);
            }
        }, function (res) {
        }, 'json');
    }
}

/**
 * clear form reload list
 */
function clearForm(fromId) {
    $("#" + fromId).form("clear"); //清空表单
    reload(); //刷新
}

/**
 * ajax req error
 * @param res
 */
function resError(res) {
    $.messager.alert('提示', res.data, "", function () {
    });
    $('.panel-tool-close').hide();
}

/**
 * delete success
 * @param res
 */
function resDel(res) {
    $.messager.show({
        title: '提示',
        msg: res.data,
        timeout: 3000,
        showType: 'slide'
    });
    reload();
}

/**
 * 删除
 */
function del() {
    var node = $('#menuTreeId').tree('getChecked');
    if (node.length == 0) {
        $.messager.alert('提示', '请至少选一个节点', "info");
        return;
    }
    $.messager.confirm("提示", "您确定要删除选中的数据吗？", function (data) {
        if (data) {
            var ids = [];
            for (var i = 0; i < node.length; i++) {
                if (null != node[i].id) {
                    ids.push(node[i].id);
                }
            }
            var url = $WEB_ROOT_PATH + '/menu/delete';
            $.ajaxAsync(url, 'POST', {ids: ids}, function (res) {
                if (res.code === 0) {
                    resDel(res);
                } else {
                    resError(res);
                }
            }, function (res) {
                // todo:403
            }, 'json');
        }
    });
}